Java Technologies @Entity, @Id, এবং @GeneratedValue এর ব্যবহার গাইড ও নোট

291

স্প্রিং বুট একটি শক্তিশালী ফ্রেমওয়ার্ক যা ডাটাবেসের সাথে কাজ করতে JPA (Java Persistence API) ব্যবহার করে। JPA হল একটি স্পেসিফিকেশন যা Java অ্যাপ্লিকেশনের অবজেক্টগুলিকে রিলেশনাল ডাটাবেসের টেবিলের সাথে ম্যাপ করতে সাহায্য করে। স্প্রিং বুটে JPA ব্যবহার করে @Entity, @Id, এবং @GeneratedValue অ্যানোটেশনগুলি ডাটাবেসের টেবিল এবং কলাম গুলির সাথে সম্পর্ক স্থাপন করে।

এগুলো কীভাবে কাজ করে এবং কেন গুরুত্বপূর্ণ, তা নিচে আলোচনা করা হলো।


@Entity অ্যানোটেশন

@Entity অ্যানোটেশনটি JPA ব্যবহার করে কোনো ক্লাসকে ডাটাবেস টেবিলের সাথে ম্যাপ করতে ব্যবহৃত হয়। এটি JPA-কে জানায় যে, এই ক্লাসটি একটি এন্টিটি এবং এটি ডাটাবেসে একটি টেবিলের প্রতিনিধিত্ব করবে।

যে ক্লাসে @Entity অ্যানোটেশনটি প্রয়োগ করা হয়, সেই ক্লাসের প্রতিটি ইনস্ট্যান্স একটি রেকর্ড হিসেবে ডাটাবেস টেবিলে সেভ হবে।

উদাহরণ:

import javax.persistence.Entity;

@Entity
public class Product {
    
    private Long id;
    private String name;
    private Double price;

    // getters and setters
}

এখানে Product ক্লাসটি @Entity দ্বারা ডাটাবেসের একটি টেবিলের প্রতিনিধিত্ব করছে।


@Id অ্যানোটেশন

@Id অ্যানোটেশনটি একটি ক্লাসের কোন ফিল্ডকে প্রাইমারি কিও (Primary Key) হিসেবে চিহ্নিত করতে ব্যবহৃত হয়। এই ফিল্ডটি ডাটাবেস টেবিলের মধ্যে প্রতিটি রেকর্ডের জন্য একক বা ইউনিক (unique) শনাক্তকারী হিসেবে কাজ করবে।

উদাহরণ:

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Product {

    @Id
    private Long id;
    private String name;
    private Double price;

    // getters and setters
}

এখানে id ফিল্ডটি @Id অ্যানোটেশন দ্বারা চিহ্নিত করা হয়েছে, যা ডাটাবেসে প্রতিটি Product রেকর্ডের জন্য একক শনাক্তকারী হবে।


@GeneratedValue অ্যানোটেশন

@GeneratedValue অ্যানোটেশনটি @Id এর সাথে ব্যবহৃত হয় এবং এটি স্পষ্ট করে দেয় যে, ফিল্ডের মানটি ডাটাবেস দ্বারা অটোমেটিক্যালি জেনারেট হবে। এটি সাধারণত যখন আপনি চান যে ডাটাবেস নিজেই একটি ইউনিক ভ্যালু (যেমন: অটো ইনক্রিমেন্ট ইত্যাদি) তৈরি করুক, তখন ব্যবহৃত হয়।

এটি সাধারণত প্রাইমারি কিও ফিল্ডের জন্য ব্যবহৃত হয়, যেখানে ডাটাবেস নিজেই প্রতিটি নতুন রেকর্ডের জন্য একক ID জেনারেট করে।

উদাহরণ:

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;

@Entity
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Double price;

    // getters and setters
}

এখানে id ফিল্ডটি @GeneratedValue অ্যানোটেশন দ্বারা ডাটাবেসের মাধ্যমে অটোমেটিক্যালি ইনক্রিমেন্ট হবে। GenerationType.IDENTITY স্ট্র্যাটেজি ব্যবহৃত হয়েছে, যা ডাটাবেসের অটোমেটিক ইনক্রিমেন্ট বৈশিষ্ট্য ব্যবহার করে।

স্প্রিং বুট এবং JPA এর মধ্যে কয়েকটি GenerationType স্ট্র্যাটেজি রয়েছে, যেমন:

  • GenerationType.IDENTITY: ডাটাবেসে অটোমেটিক ইনক্রিমেন্ট ভ্যালু ব্যবহার করা হয়।
  • GenerationType.SEQUENCE: ডাটাবেস সিকোয়েন্স ব্যবহার করে ভ্যালু জেনারেট করা হয়।
  • GenerationType.AUTO: JPA কনটেইনারের সাপোর্ট অনুযায়ী সঠিক স্ট্র্যাটেজি বেছে নেয়।
  • GenerationType.TABLE: একটি বিশেষ টেবিল ব্যবহার করে ID জেনারেট করা হয়।

সারাংশ

স্প্রিং বুটের @Entity, @Id, এবং @GeneratedValue অ্যানোটেশনগুলি JPA ব্যবহারের মাধ্যমে ডাটাবেস টেবিলের সাথে অবজেক্টের সম্পর্ক স্থাপন এবং পরিচালনা করতে সাহায্য করে।

  • @Entity অ্যানোটেশনটি একটি ক্লাসকে ডাটাবেস টেবিলের সাথে ম্যাপ করে।
  • @Id অ্যানোটেশনটি ডাটাবেস টেবিলের জন্য প্রাইমারি কিও সঠিকভাবে নির্ধারণ করে।
  • @GeneratedValue অ্যানোটেশনটি প্রাইমারি কিও ফিল্ডের জন্য ডাটাবেস দ্বারা অটোমেটিক ID জেনারেট করতে সহায়তা করে।

এই অ্যানোটেশনগুলো ব্যবহারের মাধ্যমে ডাটাবেস অপারেশনগুলো আরও সহজ ও কার্যকর হয় এবং ডাটাবেসের সাথে সঠিকভাবে কাজ করতে সাহায্য করে।


Content added By
Promotion

Are you sure to start over?

Loading...